package com.zdkj.subway.st.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.zdkj.subway.st.util.LocalDateTimeConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 车票配送/配入主表
 *
 * @author cuilei
 * @date 2020-06-12 17:39:25
 */
@Data
@TableName("sw_tk_ticket_delivery")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "车票配送_配入主表")
public class SwTkTicketDelivery extends Model<SwTkTicketDelivery> {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @TableId
    @ApiModelProperty(value = "唯一标识")
    @ExcelIgnore
    private Integer id;
    /**
     * 线路编码
     */
    @ApiModelProperty(value = "线路编码")
    @ExcelProperty(value = "线路编码", index = 0)
    private String lineCode;
    /**
     * 车站编码
     */
    @ApiModelProperty(value = "车站编码")
    @ExcelProperty(value = "车站编码", index = 1)
    private String stationCode;
    /**
     * 配送数量【张】
     */
    @ApiModelProperty(value = "配送数量【张】")
    @ExcelProperty(value = "配送数量【张】", index = 2)
    private Integer deliveryCount;
    /**
     * 配送人
     */
    @ApiModelProperty(value = "配送人")
    @ExcelProperty(value = "配送人", index = 3)
    private String deliveryPersonName;
    /**
     * 配送人工号
     */
    @ApiModelProperty(value = "配送人工号")
    @ExcelProperty(value = "配送人工号", index = 4)
    private String deliveryPersonCode;
    /**
     * 配送人2
     */
    @ApiModelProperty(value = "配送人2")
    @ExcelProperty(value = "配送人2", index = 5)
    private String deliveryPersonTwoName;
    /**
     * 配送人2工号
     */
    @ApiModelProperty(value = "配送人2工号")
    @ExcelProperty(value = "配送人2工号", index = 6)
    private String deliveryPersonTwoCode;
    /**
     * 配送时间
     */
    @ApiModelProperty(value = "配送时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "配送时间", converter = LocalDateTimeConverter.class, index = 8)
    private LocalDateTime deliveryTime;
    /**
     * 数据来源:0:人工添加;1:周配送计划
     */
    @ApiModelProperty(value = "数据来源:0:人工添加;1:周配送计划")
    @ExcelProperty(value = "配送数据来源", index = 7)
    private String dataSource;
    /**
     * 接收回收人
     */
    @ApiModelProperty(value = "接收回收人")
    @ExcelProperty(value = "接收人", index = 9)
    private String receivePersonName;
    /**
     * 接收回收人工号
     */
    @ApiModelProperty(value = "接收回收人工号")
    @ExcelProperty(value = "接收人工号", index = 10)
    private String receivePersonCode;
    /**
     * 接收回收时间
     */
    @ApiModelProperty(value = "接收回收时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "接收时间", index = 12)
    private LocalDateTime receiveTime;
    /**
     * 接收回收数量【张】
     */
    @ApiModelProperty(value = "接收回收数量【张】")
    @ExcelProperty(value = "合计接收张数", index = 11)
    private Integer receiveCount;
    /**
     * 差异数量【张】
     */
    @ApiModelProperty(value = "差异数量【张】")
    @ExcelProperty(value = "差异张数", index = 13)
    private Integer differenceCount;
    /**
     * 线网人员发送通知状态:0:未通知;1:已通知
     */
    @ApiModelProperty(value = "通知状态:0:未通知;1:已通知")
    @ExcelIgnore
    private String noticeStatus;
    /**
     * 车站人员通知确认状态:0:未确认;1:已确认
     */
    @ApiModelProperty(value = "通知确认状态:0:未确认;1:已确认")
    @ExcelIgnore
    private String noticeConfirm;
    /**
     * 车站人员更新时的配入状态 0:待确认;1:已确认;2:差异反馈;3:差异申诉
     */
    @ApiModelProperty(value = "配入状态 0:待确认;1:已确认;2:差异反馈;3:差异申诉")
    @ExcelProperty(value = "状态", index = 14)
    private String deliveryStatus;
    /**
     * 反馈信息
     */
    @ApiModelProperty(value = "反馈信息(车站)")
    @ExcelIgnore
    private String feedback;
    /**
     * 申诉信息
     */
    @ApiModelProperty(value = "申诉信息(线网)")
    @ExcelIgnore
    private String complain;

    /**
     * 调查结果
     */
    @ApiModelProperty(value = "调查结果(车站)")
    @ExcelIgnore
    private String stationSurveyResult;

    /**
     * 调查结果
     */
    @ApiModelProperty(value = "调查结果(线网)")
    @ExcelIgnore
    private String lineSurveyResult;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @ExcelProperty(value = "备注", index = 15)
    private String remark;

    /**
     * 配送时间
     */
    @ApiModelProperty(value = "配送时间 yyyy-MM-dd")
    @TableField(exist = false)
    @ExcelIgnore
    private String deliveryTimeDTO;

	/**
     * 导入数据标识 :0:否;1:是
     */
    @ApiModelProperty(value = "导入数据标识 :0:否;1:是")   
    private String importFlag;

    /**
     * 部门ID
     */
    @ApiModelProperty(value = "部门ID")
    @ExcelIgnore
    private Integer deptId;
    /**
     * 创建人ID
     */
    @ApiModelProperty(value = "创建人ID")
    @ExcelIgnore
    private Integer creatorId;
    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称")
    @ExcelIgnore
    private String creatorName;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @ExcelIgnore
    private LocalDateTime createTime;
    /**
     * 数据更新时间
     */
    @ApiModelProperty(value = "数据更新时间")
    @ExcelIgnore
    private LocalDateTime updateTime;
    /**
     * 删除标志 1：删除 0：未删
     */
    @ApiModelProperty(value = "删除标志 1：删除 0：未删")
    @ExcelIgnore
    private String delFlag;

    /**
     * 用于前端传开始结束日期
     */
    @TableField(exist = false)
    private List<String> dates1;

	@ApiModelProperty(value = "是否操作过出库（1是，0否）")
    @ExcelIgnore
    private String isOutstock;

	@ApiModelProperty(value = "是否操作过入库（1是，0否）")
    @ExcelIgnore
    private String isInstock;

    @TableField(exist = false)
    @ExcelIgnore
    private List<String> dates2;

}
